#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
__author__ = "Administrator"
__name__="Paramiko_SSH"
__date__="2016/7/13"
__time__="16:23"
"""
import paramiko

'''# 密码验证登录
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('10.10.8.134',22,'root','123456')
stdin, stdout, stderr  = ssh.exec_command('hostname')
print stdout.read()
print stderr.read()
ssh.close()
'''
'''
非对称加密协议
公钥加密
私钥解密
ssh 认证过程是加密；认证之后的数据传输（默认）是加密的
服务器端发送TCP请求---->要连接客户端的22端口---->客户端用公钥加密一段随机(避免返回的明文数据被截获)数据给服务端---->服务端用私钥解密后，将数据再发给客户端---->客户端接收到数据，确认无误后---->允许服务端连接---->ssh认证通过后，以后传输的数据是加密的。
'''

# 秘钥验证登录
private_key_path = 'E:\\rsa\wqk_sjt_rsa'
key = paramiko.RSAKey.from_private_key_file(private_key_path,password='123')   # 私钥的密码，无则不用指定password

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname='192.168.1.1',port=22,username='root',pkey=key)

stdin, stdout, stderr = ssh.exec_command('hostname')
print stdout.read()
ssh.close()
